<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>IDA SDK: Debugger module features</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">IDA SDK
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="files.html"><span>Header&#160;Files</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a>  </div>
  <div class="headertitle">
<div class="title">Debugger module features</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Used by <a class="el" href="structdebugger__t.html#a48e27b9a06eb3abe8cfb1f681c0476f1" title="Debugger module features ">debugger_t::flags</a>. </p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga8e92be34c098ff5cc3c8555d3dc518fd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8e92be34c098ff5cc3c8555d3dc518fd"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___d_b_g___f_l_a_g__.html#ga8e92be34c098ff5cc3c8555d3dc518fd">DBG_FLAG_REMOTE</a>&#160;&#160;&#160;0x00000001</td></tr>
<tr class="memdesc:ga8e92be34c098ff5cc3c8555d3dc518fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remote debugger (requires remote host name unless <a class="el" href="group___d_b_g___f_l_a_g__.html#ga584fec50d0580701170eb23c8c5467c7" title="Remote debugger with does not require network params (host/port/pass). ">DBG_FLAG_NOHOST</a>) <br /></td></tr>
<tr class="separator:ga8e92be34c098ff5cc3c8555d3dc518fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga584fec50d0580701170eb23c8c5467c7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___d_b_g___f_l_a_g__.html#ga584fec50d0580701170eb23c8c5467c7">DBG_FLAG_NOHOST</a>&#160;&#160;&#160;0x00000002</td></tr>
<tr class="memdesc:ga584fec50d0580701170eb23c8c5467c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remote debugger with does not require network params (host/port/pass).  <a href="#ga584fec50d0580701170eb23c8c5467c7">More...</a><br /></td></tr>
<tr class="separator:ga584fec50d0580701170eb23c8c5467c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga24c222dba509cb02e5a0bd572c77c10b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___d_b_g___f_l_a_g__.html#ga24c222dba509cb02e5a0bd572c77c10b">DBG_FLAG_FAKE_ATTACH</a>&#160;&#160;&#160;0x00000004</td></tr>
<tr class="memdesc:ga24c222dba509cb02e5a0bd572c77c10b"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="idd_8hpp.html#a0e4c82840d549d876223416d8ae11356ab7145e1307bf48b3e0b61099dabfc935" title="Successfully attached to running process. ">PROCESS_ATTACH</a> is a fake event  <a href="#ga24c222dba509cb02e5a0bd572c77c10b">More...</a><br /></td></tr>
<tr class="separator:ga24c222dba509cb02e5a0bd572c77c10b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7be8702d0faec636f5ee3fccbc65d62b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___d_b_g___f_l_a_g__.html#ga7be8702d0faec636f5ee3fccbc65d62b">DBG_FLAG_HWDATBPT_ONE</a>&#160;&#160;&#160;0x00000008</td></tr>
<tr class="memdesc:ga7be8702d0faec636f5ee3fccbc65d62b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hardware data breakpoints are.  <a href="#ga7be8702d0faec636f5ee3fccbc65d62b">More...</a><br /></td></tr>
<tr class="separator:ga7be8702d0faec636f5ee3fccbc65d62b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadff938dc1c4cab1f4bc69dc0a014a995"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___d_b_g___f_l_a_g__.html#gadff938dc1c4cab1f4bc69dc0a014a995">DBG_FLAG_CAN_CONT_BPT</a>&#160;&#160;&#160;0x00000010</td></tr>
<tr class="memdesc:gadff938dc1c4cab1f4bc69dc0a014a995"><td class="mdescLeft">&#160;</td><td class="mdescRight">Debugger knows to continue from a bpt.  <a href="#gadff938dc1c4cab1f4bc69dc0a014a995">More...</a><br /></td></tr>
<tr class="separator:gadff938dc1c4cab1f4bc69dc0a014a995"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7d672811f0e5bf910391d5cde4be0472"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7d672811f0e5bf910391d5cde4be0472"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___d_b_g___f_l_a_g__.html#ga7d672811f0e5bf910391d5cde4be0472">DBG_FLAG_NEEDPORT</a>&#160;&#160;&#160;0x00000020</td></tr>
<tr class="memdesc:ga7d672811f0e5bf910391d5cde4be0472"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remote debugger requires port number (to be used with DBG_FLAG_NOHOST) <br /></td></tr>
<tr class="separator:ga7d672811f0e5bf910391d5cde4be0472"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae0c598cb1c0fe8e8d016acebb6d01551"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___d_b_g___f_l_a_g__.html#gae0c598cb1c0fe8e8d016acebb6d01551">DBG_FLAG_DONT_DISTURB</a>&#160;&#160;&#160;0x00000040</td></tr>
<tr class="memdesc:gae0c598cb1c0fe8e8d016acebb6d01551"><td class="mdescLeft">&#160;</td><td class="mdescRight">Debugger can handle only.  <a href="#gae0c598cb1c0fe8e8d016acebb6d01551">More...</a><br /></td></tr>
<tr class="separator:gae0c598cb1c0fe8e8d016acebb6d01551"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5014045353a5319d89dee7a68c780d2a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___d_b_g___f_l_a_g__.html#ga5014045353a5319d89dee7a68c780d2a">DBG_FLAG_SAFE</a>&#160;&#160;&#160;0x00000080</td></tr>
<tr class="memdesc:ga5014045353a5319d89dee7a68c780d2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">The debugger is safe (probably because it just emulates the application.  <a href="#ga5014045353a5319d89dee7a68c780d2a">More...</a><br /></td></tr>
<tr class="separator:ga5014045353a5319d89dee7a68c780d2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga83e77c88388575a1a3e60961d4dbea7a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___d_b_g___f_l_a_g__.html#ga83e77c88388575a1a3e60961d4dbea7a">DBG_FLAG_CLEAN_EXIT</a>&#160;&#160;&#160;0x00000100</td></tr>
<tr class="memdesc:ga83e77c88388575a1a3e60961d4dbea7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">IDA must suspend the application and remove.  <a href="#ga83e77c88388575a1a3e60961d4dbea7a">More...</a><br /></td></tr>
<tr class="separator:ga83e77c88388575a1a3e60961d4dbea7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga93099c972ac63c2660f44554ecbe72ce"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga93099c972ac63c2660f44554ecbe72ce"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___d_b_g___f_l_a_g__.html#ga93099c972ac63c2660f44554ecbe72ce">DBG_FLAG_USE_SREGS</a>&#160;&#160;&#160;0x00000200</td></tr>
<tr class="memdesc:ga93099c972ac63c2660f44554ecbe72ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Take segment register values into account (non flat memory) <br /></td></tr>
<tr class="separator:ga93099c972ac63c2660f44554ecbe72ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3f8939c2d1b3fa6e54b9a56b9377ad84"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3f8939c2d1b3fa6e54b9a56b9377ad84"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___d_b_g___f_l_a_g__.html#ga3f8939c2d1b3fa6e54b9a56b9377ad84">DBG_FLAG_NOSTARTDIR</a>&#160;&#160;&#160;0x00000400</td></tr>
<tr class="memdesc:ga3f8939c2d1b3fa6e54b9a56b9377ad84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Debugger module doesn't use startup directory. <br /></td></tr>
<tr class="separator:ga3f8939c2d1b3fa6e54b9a56b9377ad84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7da96c39911b30346f9c464035bcabc2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7da96c39911b30346f9c464035bcabc2"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___d_b_g___f_l_a_g__.html#ga7da96c39911b30346f9c464035bcabc2">DBG_FLAG_NOPARAMETERS</a>&#160;&#160;&#160;0x00000800</td></tr>
<tr class="memdesc:ga7da96c39911b30346f9c464035bcabc2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Debugger module doesn't use commandline parameters. <br /></td></tr>
<tr class="separator:ga7da96c39911b30346f9c464035bcabc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab17ce4b4650a869303265187300faa12"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab17ce4b4650a869303265187300faa12"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___d_b_g___f_l_a_g__.html#gab17ce4b4650a869303265187300faa12">DBG_FLAG_NOPASSWORD</a>&#160;&#160;&#160;0x00001000</td></tr>
<tr class="memdesc:gab17ce4b4650a869303265187300faa12"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remote debugger doesn't use password. <br /></td></tr>
<tr class="separator:gab17ce4b4650a869303265187300faa12"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8e45c7590152a300948c4bbbacf98b9e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8e45c7590152a300948c4bbbacf98b9e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___d_b_g___f_l_a_g__.html#ga8e45c7590152a300948c4bbbacf98b9e">DBG_FLAG_CONNSTRING</a>&#160;&#160;&#160;0x00002000</td></tr>
<tr class="memdesc:ga8e45c7590152a300948c4bbbacf98b9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Display "Connection string" instead of "Hostname" and hide the "Port" field. <br /></td></tr>
<tr class="separator:ga8e45c7590152a300948c4bbbacf98b9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9656735fbe68b8e13f1af87f171a36d4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___d_b_g___f_l_a_g__.html#ga9656735fbe68b8e13f1af87f171a36d4">DBG_FLAG_SMALLBLKS</a>&#160;&#160;&#160;0x00004000</td></tr>
<tr class="memdesc:ga9656735fbe68b8e13f1af87f171a36d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">If set, IDA uses 256-byte blocks for caching memory contents.  <a href="#ga9656735fbe68b8e13f1af87f171a36d4">More...</a><br /></td></tr>
<tr class="separator:ga9656735fbe68b8e13f1af87f171a36d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacac4d57b9b0ee8224a925fd8453145e8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___d_b_g___f_l_a_g__.html#gacac4d57b9b0ee8224a925fd8453145e8">DBG_FLAG_MANMEMINFO</a>&#160;&#160;&#160;0x00008000</td></tr>
<tr class="memdesc:gacac4d57b9b0ee8224a925fd8453145e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">If set, manual memory region manipulation commands.  <a href="#gacac4d57b9b0ee8224a925fd8453145e8">More...</a><br /></td></tr>
<tr class="separator:gacac4d57b9b0ee8224a925fd8453145e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac1a1d91931d207bec0738ac9dfdc9b08"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac1a1d91931d207bec0738ac9dfdc9b08"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___d_b_g___f_l_a_g__.html#gac1a1d91931d207bec0738ac9dfdc9b08">DBG_FLAG_EXITSHOTOK</a>&#160;&#160;&#160;0x00010000</td></tr>
<tr class="memdesc:gac1a1d91931d207bec0738ac9dfdc9b08"><td class="mdescLeft">&#160;</td><td class="mdescRight">IDA may take a memory snapshot at <a class="el" href="idd_8hpp.html#a0e4c82840d549d876223416d8ae11356afb460266f74f4f915ba76e22a62c621c" title="Process has been stopped. ">PROCESS_EXIT</a> event. <br /></td></tr>
<tr class="separator:gac1a1d91931d207bec0738ac9dfdc9b08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8f43a05b5a33f4ff30ea6cd119271c68"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___d_b_g___f_l_a_g__.html#ga8f43a05b5a33f4ff30ea6cd119271c68">DBG_FLAG_VIRTHREADS</a>&#160;&#160;&#160;0x00020000</td></tr>
<tr class="memdesc:ga8f43a05b5a33f4ff30ea6cd119271c68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Thread IDs may be shuffled after each debug event.  <a href="#ga8f43a05b5a33f4ff30ea6cd119271c68">More...</a><br /></td></tr>
<tr class="separator:ga8f43a05b5a33f4ff30ea6cd119271c68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga971e61b7456ef434ea86f4aa7fb5ae39"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga971e61b7456ef434ea86f4aa7fb5ae39"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___d_b_g___f_l_a_g__.html#ga971e61b7456ef434ea86f4aa7fb5ae39">DBG_FLAG_LOWCNDS</a>&#160;&#160;&#160;0x00040000</td></tr>
<tr class="memdesc:ga971e61b7456ef434ea86f4aa7fb5ae39"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low level breakpoint conditions are supported. <br /></td></tr>
<tr class="separator:ga971e61b7456ef434ea86f4aa7fb5ae39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaff47e2dbf1d46099cb0cce35bd36ad1e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___d_b_g___f_l_a_g__.html#gaff47e2dbf1d46099cb0cce35bd36ad1e">DBG_FLAG_DEBTHREAD</a>&#160;&#160;&#160;0x00080000</td></tr>
<tr class="memdesc:gaff47e2dbf1d46099cb0cce35bd36ad1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Supports creation of a separate thread in ida.  <a href="#gaff47e2dbf1d46099cb0cce35bd36ad1e">More...</a><br /></td></tr>
<tr class="separator:gaff47e2dbf1d46099cb0cce35bd36ad1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabb363aa6833062299ddc023de2b373be"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___d_b_g___f_l_a_g__.html#gabb363aa6833062299ddc023de2b373be">DBG_FLAG_DEBUG_DLL</a>&#160;&#160;&#160;0x00100000</td></tr>
<tr class="memdesc:gabb363aa6833062299ddc023de2b373be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Can debug standalone DLLs.  <a href="#gabb363aa6833062299ddc023de2b373be">More...</a><br /></td></tr>
<tr class="separator:gabb363aa6833062299ddc023de2b373be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga312fb3e8840b367ca0f4c9de2e3c6d9b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___d_b_g___f_l_a_g__.html#ga312fb3e8840b367ca0f4c9de2e3c6d9b">DBG_FLAG_FAKE_MEMORY</a>&#160;&#160;&#160;0x00200000</td></tr>
<tr class="memdesc:ga312fb3e8840b367ca0f4c9de2e3c6d9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">get_memory_info()/read_memory()/write_memory() work with the idb.  <a href="#ga312fb3e8840b367ca0f4c9de2e3c6d9b">More...</a><br /></td></tr>
<tr class="separator:ga312fb3e8840b367ca0f4c9de2e3c6d9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4869ea226c3df8c87bb75428bf439b7f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4869ea226c3df8c87bb75428bf439b7f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___d_b_g___f_l_a_g__.html#ga4869ea226c3df8c87bb75428bf439b7f">DBG_FLAG_ANYSIZE_HWBPT</a>&#160;&#160;&#160;0x00400000</td></tr>
<tr class="memdesc:ga4869ea226c3df8c87bb75428bf439b7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The debugger supports arbitrary size hardware breakpoints. <br /></td></tr>
<tr class="separator:ga4869ea226c3df8c87bb75428bf439b7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6601ee11c1e00e8fe9d6df55b9192697"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6601ee11c1e00e8fe9d6df55b9192697"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___d_b_g___f_l_a_g__.html#ga6601ee11c1e00e8fe9d6df55b9192697">DBG_FLAG_TRACER_MODULE</a>&#160;&#160;&#160;0x00800000</td></tr>
<tr class="memdesc:ga6601ee11c1e00e8fe9d6df55b9192697"><td class="mdescLeft">&#160;</td><td class="mdescRight">The module is a tracer, not a full featured debugger module. <br /></td></tr>
<tr class="separator:ga6601ee11c1e00e8fe9d6df55b9192697"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga775207dbc650ddeb636640bbbb36f400"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga775207dbc650ddeb636640bbbb36f400"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___d_b_g___f_l_a_g__.html#ga775207dbc650ddeb636640bbbb36f400">DBG_FLAG_PREFER_SWBPTS</a>&#160;&#160;&#160;0x01000000</td></tr>
<tr class="memdesc:ga775207dbc650ddeb636640bbbb36f400"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prefer to use software breakpoints. <br /></td></tr>
<tr class="separator:ga775207dbc650ddeb636640bbbb36f400"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga584fec50d0580701170eb23c8c5467c7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DBG_FLAG_NOHOST&#160;&#160;&#160;0x00000002</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Remote debugger with does not require network params (host/port/pass). </p>
<p>(a unique device connected to the machine) </p>

</div>
</div>
<a class="anchor" id="ga24c222dba509cb02e5a0bd572c77c10b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DBG_FLAG_FAKE_ATTACH&#160;&#160;&#160;0x00000004</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><a class="el" href="idd_8hpp.html#a0e4c82840d549d876223416d8ae11356ab7145e1307bf48b3e0b61099dabfc935" title="Successfully attached to running process. ">PROCESS_ATTACH</a> is a fake event </p>
<p>and does not suspend the execution </p>

</div>
</div>
<a class="anchor" id="ga7be8702d0faec636f5ee3fccbc65d62b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DBG_FLAG_HWDATBPT_ONE&#160;&#160;&#160;0x00000008</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Hardware data breakpoints are. </p>
<p>one byte size by default </p>

</div>
</div>
<a class="anchor" id="gadff938dc1c4cab1f4bc69dc0a014a995"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DBG_FLAG_CAN_CONT_BPT&#160;&#160;&#160;0x00000010</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Debugger knows to continue from a bpt. </p>
<p>This flag also means that the debugger module hides breakpoints from ida upon read_memory </p>

</div>
</div>
<a class="anchor" id="gae0c598cb1c0fe8e8d016acebb6d01551"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DBG_FLAG_DONT_DISTURB&#160;&#160;&#160;0x00000040</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Debugger can handle only. </p>
<p><a class="el" href="group__dbg__funcs__high.html#ga3e0d1966c24b4214fcedacbc67b192c7" title="Get the current debugger event. ">get_debug_event()</a>, prepare_to_pause_process(), <a class="el" href="group__dbg__funcs__cmds.html#ga2aaee8c71618ffef3f2562599b314316" title="Terminate the debugging of the current process. ">exit_process()</a>. when the debugged process is running. The kernel may also call service functions (file I/O, map_address, etc) </p>

</div>
</div>
<a class="anchor" id="ga5014045353a5319d89dee7a68c780d2a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DBG_FLAG_SAFE&#160;&#160;&#160;0x00000080</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The debugger is safe (probably because it just emulates the application. </p>
<p>without really running it) </p>

</div>
</div>
<a class="anchor" id="ga83e77c88388575a1a3e60961d4dbea7a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DBG_FLAG_CLEAN_EXIT&#160;&#160;&#160;0x00000100</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>IDA must suspend the application and remove. </p>
<p>all breakpoints before terminating the application. Usually this is not required because the application memory disappears upon termination. </p>

</div>
</div>
<a class="anchor" id="ga9656735fbe68b8e13f1af87f171a36d4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DBG_FLAG_SMALLBLKS&#160;&#160;&#160;0x00004000</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>If set, IDA uses 256-byte blocks for caching memory contents. </p>
<p>Otherwise, 1024-byte blocks are used </p>

</div>
</div>
<a class="anchor" id="gacac4d57b9b0ee8224a925fd8453145e8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DBG_FLAG_MANMEMINFO&#160;&#160;&#160;0x00008000</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>If set, manual memory region manipulation commands. </p>
<p>will be available. Use this bit for debugger modules that can not return memory layout information </p>

</div>
</div>
<a class="anchor" id="ga8f43a05b5a33f4ff30ea6cd119271c68"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DBG_FLAG_VIRTHREADS&#160;&#160;&#160;0x00020000</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Thread IDs may be shuffled after each debug event. </p>
<p>(to be used for virtual threads that represent cpus for windbg kmode) </p>

</div>
</div>
<a class="anchor" id="gaff47e2dbf1d46099cb0cce35bd36ad1e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DBG_FLAG_DEBTHREAD&#160;&#160;&#160;0x00080000</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Supports creation of a separate thread in ida. </p>
<p>for the debugger (the debthread). Most debugger functions will be called from debthread (exceptions are marked below) The debugger module may directly call only <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab" title="Functions callable from any thread are marked with this keyword. ">THREAD_SAFE</a> functions. To call other functions please use <a class="el" href="kernwin_8hpp.html#a69761082f4ed4caa6fb527da4bf5268d" title="Execute code in the main thread. ">execute_sync()</a>. The debthread significantly increases debugging speed, especially if debug events occur frequently (to be tested) </p>

</div>
</div>
<a class="anchor" id="gabb363aa6833062299ddc023de2b373be"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DBG_FLAG_DEBUG_DLL&#160;&#160;&#160;0x00100000</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Can debug standalone DLLs. </p>
<p>For example, Bochs debugger can debug any snippet of code </p>

</div>
</div>
<a class="anchor" id="ga312fb3e8840b367ca0f4c9de2e3c6d9b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DBG_FLAG_FAKE_MEMORY&#160;&#160;&#160;0x00200000</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>get_memory_info()/read_memory()/write_memory() work with the idb. </p>
<p>(there is no real process to read from, as for the replayer module) the kernel will not call these functions if this flag is set. however, third party plugins may call them, they must be implemented. </p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
</body>
</html>
